package sv.gob.mh.dgii.model;

// Generated Jun 4, 2008 1:49:27 PM by Hibernate Tools 3.2.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * CgTecnico generated by hbm2java
 */
@Entity
@Table(name = "CG_TECNICO", schema = "UPET")
public class CgTecnico implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8671775211735780952L;
	
	
	private String nit;
	private RcRuc rcRuc;
	private TbUnidad tbUnidad;
	private CgGrupoTrab cgGrupoTrab;
	private TbRol tbRol;
	private Double vsalario;
	private Integer bpermRuteo;
	private String mnivelAcceso;
	private String cusuario;
	private Date fhingreso;
	private Date fhmodificacion;
	private Integer bactiva;
	private Integer brestringido;
	private Integer bhistcasos;
	private Integer bsupertmp;
	private Set<CgSupervCaso> cgSupervCasos = new HashSet<CgSupervCaso>(0);
	private Set<CgTecnicoCaso> cgTecnicoCasos = new HashSet<CgTecnicoCaso>(0);
	private Set<CgRuta> cgRutas = new HashSet<CgRuta>(0);
	private Set<CgGrupoTrab> cgGrupoTrabs = new HashSet<CgGrupoTrab>(0);
	private Set<CgEstAvan> cgEstAvans = new HashSet<CgEstAvan>(0);
	private Set<CgCoordinacion> cgCoordinacions = new HashSet<CgCoordinacion>(0);
	private Set<CgAnexo> cgAnexos = new HashSet<CgAnexo>(0);
	private Set<CgProduccion> cgProduccions = new HashSet<CgProduccion>(0);

	public CgTecnico() {
	}

	public CgTecnico(String nit, RcRuc rcRuc, TbUnidad tbUnidad, TbRol tbRol,
			Double vsalario, Integer bpermRuteo, String mnivelAcceso,
			String cusuario, Date fhingreso, Date fhmodificacion,
			Integer bactiva, Integer brestringido, Integer bhistcasos,Integer bsupertmp) {
		this.nit = nit;
		this.rcRuc = rcRuc;
		this.tbUnidad = tbUnidad;
		this.tbRol = tbRol;
		this.vsalario = vsalario;
		this.bpermRuteo = bpermRuteo;
		this.mnivelAcceso = mnivelAcceso;
		this.cusuario = cusuario;
		this.fhingreso = fhingreso;
		this.fhmodificacion = fhmodificacion;
		this.bactiva = bactiva;
		this.brestringido = brestringido;
		this.bhistcasos = bhistcasos;
		this.bsupertmp = bsupertmp;
	}

	public CgTecnico(String nit, RcRuc rcRuc, TbUnidad tbUnidad,
			CgGrupoTrab cgGrupoTrab, TbRol tbRol, Double vsalario,
			Integer bpermRuteo, String mnivelAcceso, String cusuario,
			Date fhingreso, Date fhmodificacion, Integer bactiva,Integer bhistcasos,
			Integer brestringido, Set<CgSupervCaso> cgSupervCasos,
			Set<CgTecnicoCaso> cgTecnicoCasos, Set<CgRuta> cgRutas,
			Set<CgGrupoTrab> cgGrupoTrabs, Set<CgEstAvan> cgEstAvans,
			Set<CgCoordinacion> cgCoordinacions, Set<CgAnexo> cgAnexos,
			Set<CgProduccion> cgProduccions,Integer bsupertmp) {
		this.nit = nit;
		this.rcRuc = rcRuc;
		this.tbUnidad = tbUnidad;
		this.cgGrupoTrab = cgGrupoTrab;
		this.tbRol = tbRol;
		this.vsalario = vsalario;
		this.bpermRuteo = bpermRuteo;
		this.mnivelAcceso = mnivelAcceso;
		this.cusuario = cusuario;
		this.fhingreso = fhingreso;
		this.fhmodificacion = fhmodificacion;
		this.bactiva = bactiva;
		this.brestringido = brestringido;
		this.bhistcasos = bhistcasos;
		this.bsupertmp = bsupertmp;
		this.cgSupervCasos = cgSupervCasos;
		this.cgTecnicoCasos = cgTecnicoCasos;
		this.cgRutas = cgRutas;
		this.cgGrupoTrabs = cgGrupoTrabs;
		this.cgEstAvans = cgEstAvans;
		this.cgCoordinacions = cgCoordinacions;
		this.cgAnexos = cgAnexos;
		this.cgProduccions = cgProduccions;
	}

	@Id
	@Column(name = "NIT", unique = true, nullable = false, length = 14)
	public String getNit() {
		return this.nit;
	}

	public void setNit(String nit) {
		this.nit = nit;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "NIT", unique = true, nullable = false, insertable = false, updatable = false)
	public RcRuc getRcRuc() {
		return this.rcRuc;
	}

	public void setRcRuc(RcRuc rcRuc) {
		this.rcRuc = rcRuc;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "C_UNIDAD", nullable = false)
	public TbUnidad getTbUnidad() {
		return this.tbUnidad;
	}

	public void setTbUnidad(TbUnidad tbUnidad) {
		this.tbUnidad = tbUnidad;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "C_GRUPO")
	public CgGrupoTrab getCgGrupoTrab() {
		return this.cgGrupoTrab;
	}

	public void setCgGrupoTrab(CgGrupoTrab cgGrupoTrab) {
		this.cgGrupoTrab = cgGrupoTrab;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "C_ROL", nullable = false)
	public TbRol getTbRol() {
		return this.tbRol;
	}

	public void setTbRol(TbRol tbRol) {
		this.tbRol = tbRol;
	}

	@Column(name = "V_SALARIO", nullable = false, precision = 8)
	public Double getVsalario() {
		return this.vsalario;
	}

	public void setVsalario(Double vsalario) {
		this.vsalario = vsalario;
	}

	@Column(name = "B_PERM_RUTEO", nullable = false, precision = 1, scale = 0)
	public Integer getBpermRuteo() {
		return this.bpermRuteo;
	}

	public void setBpermRuteo(Integer bpermRuteo) {
		this.bpermRuteo = bpermRuteo;
	}

	@Column(name = "M_NIVEL_ACCESO", nullable = false, length = 1)
	public String getMnivelAcceso() {
		return this.mnivelAcceso;
	}

	public void setMnivelAcceso(String mnivelAcceso) {
		this.mnivelAcceso = mnivelAcceso;
	}

	@Column(name = "C_USUARIO", nullable = false, length = 30)
	public String getCusuario() {
		return this.cusuario;
	}

	public void setCusuario(String cusuario) {
		this.cusuario = cusuario;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_INGRESO", nullable = false, length = 7)
	public Date getFhingreso() {
		return this.fhingreso;
	}

	public void setFhingreso(Date fhingreso) {
		this.fhingreso = fhingreso;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_MODIFICACION", nullable = false, length = 7)
	public Date getFhmodificacion() {
		return this.fhmodificacion;
	}

	public void setFhmodificacion(Date fhmodificacion) {
		this.fhmodificacion = fhmodificacion;
	}

	@Column(name = "B_ACTIVA", nullable = false, precision = 1, scale = 0)
	public Integer getBactiva() {
		return this.bactiva;
	}

	public void setBactiva(Integer bactiva) {
		this.bactiva = bactiva;
	}

	@Column(name = "B_RESTRINGIDO", nullable = false, precision = 1, scale = 0)
	public Integer getBrestringido() {
		return this.brestringido;
	}

	public void setBrestringido(Integer brestringido) {
		this.brestringido = brestringido;
	}
	
	@Column(name = "B_HIST_CASOS", nullable = false, precision = 1, scale = 0)
	public Integer getBhistcasos() {
		return bhistcasos;
	}

	public void setBhistcasos(Integer bhistcasos) {
		this.bhistcasos = bhistcasos;
	}

	@Column(name = "B_SUPERVISOR_TMP", nullable = true, precision = 1, scale = 0)
	public Integer getBsupertmp() {
		return bsupertmp;
	}

	public void setBsupertmp(Integer bsupertmp) {
		this.bsupertmp = bsupertmp;
	}

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "cgTecnico")
	public Set<CgSupervCaso> getCgSupervCasos() {
		return this.cgSupervCasos;
	}

	public void setCgSupervCasos(Set<CgSupervCaso> cgSupervCasos) {
		this.cgSupervCasos = cgSupervCasos;
	}

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "cgTecnico")
	public Set<CgTecnicoCaso> getCgTecnicoCasos() {
		return this.cgTecnicoCasos;
	}

	public void setCgTecnicoCasos(Set<CgTecnicoCaso> cgTecnicoCasos) {
		this.cgTecnicoCasos = cgTecnicoCasos;
	}

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "cgTecnico")
	public Set<CgRuta> getCgRutas() {
		return this.cgRutas;
	}

	public void setCgRutas(Set<CgRuta> cgRutas) {
		this.cgRutas = cgRutas;
	}

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "cgTecnico")
	public Set<CgGrupoTrab> getCgGrupoTrabs() {
		return this.cgGrupoTrabs;
	}

	public void setCgGrupoTrabs(Set<CgGrupoTrab> cgGrupoTrabs) {
		this.cgGrupoTrabs = cgGrupoTrabs;
	}

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "cgTecnico")
	public Set<CgEstAvan> getCgEstAvans() {
		return this.cgEstAvans;
	}

	public void setCgEstAvans(Set<CgEstAvan> cgEstAvans) {
		this.cgEstAvans = cgEstAvans;
	}

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "cgTecnico")
	public Set<CgCoordinacion> getCgCoordinacions() {
		return this.cgCoordinacions;
	}

	public void setCgCoordinacions(Set<CgCoordinacion> cgCoordinacions) {
		this.cgCoordinacions = cgCoordinacions;
	}

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "cgTecnico")
	public Set<CgAnexo> getCgAnexos() {
		return this.cgAnexos;
	}

	public void setCgAnexos(Set<CgAnexo> cgAnexos) {
		this.cgAnexos = cgAnexos;
	}

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "cgTecnico")
	public Set<CgProduccion> getCgProduccions() {
		return this.cgProduccions;
	}

	public void setCgProduccions(Set<CgProduccion> cgProduccions) {
		this.cgProduccions = cgProduccions;
	}

}
